## Требования к оформлению лабораторных работ

#### Общие положения

Все лабораторные работы должны быть оформлены в одном приватном репозитории на GitLab. Формат именования репозитория: `cpp-nsk-YYYY-SURNAME` (например: `cpp-nsk-2022-Ivanov`).

Сразу после создания репозитория на GitLab, требуется закрыть ветку master для прямых пушей ([о том, как это сделать](https://docs.gitlab.com/ee/user/project/protected_branches.html)). Выставляете для этой ветки следующие настройки:

* `Branch: master`
* `Allowed to merge: Developers + Maintainers`
* `Allowed to push: No One`

Также, следует добавить пользователя `ivafanas` в репозиторий как разработчиков ([о том, как это сделать](https://docs.gitlab.com/ee/user/project/members/)); Project Access установить в Developer)

Разработка каждой лабораторной работы ведётся в отдельной ветке, формат именования которой: `task-lab[N]-[lab-name]` (например: `task-lab1-caesar-crypt`). Лабораторная работа оценивается исходя из кода, содержащимся в мастере. Итоговый код попадает в мастер только после прохождения ревью. Информацию о работе с ревью вы можете найти в соответствующей главе.

#### Правила оформления лабораторных работ

Под каждую лабораторную работу в директории репозитория заводится отдельная директория. Формат именования: `Lab[N]` (например: `Lab1`)

Наличие исходного кода внешних зависимостей (таких, как дополнительных библиотек, например `GoogleTest`) в merge request’ах не допускается.

#### Работа с ревью на Gitlab

Для того, чтобы у проверяющих была возможность провести ревью вашего кода, вам потребуется создать т.н. Merge Request из вашей рабочей ветки (`task-lab[N]-[lab-name]`) в `master` ([о том, как это сделать](https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html)). Merge request назначайте на `ivafanas`.

После этого, проверяющие либо одобрят ваш Merge Request, либо оставят какие-либо комментарии к коду для исправления.

Задание считается засчитанным, когда исправлены комментарии от всех проверяющих и merge request смержен в master.

Обратите внимание на то, чтобы Merge Request был создан именно из вашей рабочей  ветки (Source branch) именно в master (Target branch).
